Published on January 17, 2025

返回

转到题目

思路

#include<bits/stdc++.h>
using namespace std;
string s;

int main()
{
    ios::sync_with_stdio(0),cin.tie(); 
    cin>>s;
    vector<pair<char,int>> a(s.size());
    string ans(s.size(), ' ');
    int cnt[500];
    memset(cnt,0,sizeof(cnt));
    int mx=0;
    for(int i=0;i<s.size();i++)
    {
        a[i].first=s[i],a[i].second=i;
        cnt[s[i]-'a']++;
        mx=max(mx,cnt[s[i]-'a']);
    }
    if(mx>s.size()/2)
    {
        cout<<-1<<endl;
        return 0;
    }
    sort(a.begin(),a.end(),[](const pair<char,int>&a1,const pair<char , int >&a2)
         {return a1.first<a2.first;});
    for(int i=0;i<s.size();i++)
    {
        ans[a[i].second]=a[(i+mx)%s.size()].first;
        
    }
     cout << ans << endl;
    return 0;
}